package com.ruoyi.workflow.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.workflow.constants.TaskType;
import com.ruoyi.workflow.domain.CompanyApply;
import com.ruoyi.workflow.dto.*;

import java.util.List;

/**
 * 单位注册审批记录Service接口
 *
 * @author 周志雄
 * @date 2024-03-04
 */
public interface ICompanyApplyService {

    /**
     * 开始新的审批流程
     */
    AjaxResult<String> startFlow(String companyId) throws Exception;

    AjaxResult<String> startFlow(String companyId,String userId) throws Exception;

    /**
     * 根据类型查询任务
     * @param companyApplySearchDto
     * @return
     */
    List<CompanyApplyResDto> selectTaskListByType(CompanyApplySearchDto companyApplySearchDto);

    /**
     * 完成单位审批
     * @param taskCompleteDto
     * @return
     */
    AjaxResult<String> completeTask(TaskCompleteDto taskCompleteDto);

    /**
     * 查看详情页
     * @param id
     * @return
     */
    CompanyApplyInfoDto selectInfoById(String id);

    /**
     * 撤回流程
     * @param applyId
     * @return
     */
    AjaxResult<String> rollback(String applyId);
}
